需要 Scripting PRO
BluetoothPeripheral 表示一个 BLE 外围设备对象,支持读取设备信息、连接状态、发现服务与特征值、读取写入数据、订阅通知等。它是蓝牙通信的主要交互对象。
id: string设备唯一标识符(UUID 格式),可用于标识并连接该设备。此值在 App 生命周期中保持不变。
name: string | null设备的名称,可能为 null(例如设备未广播名称)。
isConnected: boolean是否已连接到设备:
true: 已连接,可以进行数据交互false: 未连接或已断开canSendWriteWithoutResponse: boolean是否允许进行无响应写入:
true: 可发送无响应数据(writeWithoutResponse)false: 需等待写入响应(使用 write)当该值变为 true 时会触发 onReadyToSendWriteWithoutResponse 事件。
ancsAuthorized: boolean是否已授权使用 Apple Notification Center Service(仅适用于支持 ANCS 的设备)。
services: BluetoothService[] | null已发现的服务列表,如果尚未调用 discoverServices(),此值为 null。
onConnected: (() => void) | null连接成功时触发。
onDisconnected: ((error: Error | null, isReconnecting: boolean) => void) | null断开连接时触发。
error: 若为非主动断开,则包含错误信息;否则为 nullisReconnecting: 是否正在尝试重连onConnectFailed: ((error: Error) => void) | null连接失败时触发。
onNameChanged: ((name: string | null) => void) | null设备名称发生变更时触发。
onDiscoverServices: ((error: Error | null, services: BluetoothService[] | null) => void) | null调用 discoverServices() 后,服务发现完成时触发。
onDiscoverCharacteristics: ((error: Error | null, characteristics: BluetoothCharacteristic[] | null) => void) | null调用 discoverCharacteristics() 后,特征值发现完成时触发。
onDiscoverIncludedServices: ((error: Error | null, services: BluetoothService[] | null) => void) | null调用 discoverIncludedServices() 后,包含服务发现完成时触发。
onReadyToSendWriteWithoutResponse: (() => void) | null设备准备好接收新的无响应写入时触发。
readValue(characteristic: BluetoothCharacteristic): Promise<Data>读取指定特征值的内容。
参数:
characteristic: 要读取的特征值对象返回:Promise<Data>,表示读取到的数据
maxWriteValueLength(writeType: "withResponse" | "withoutResponse"): number获取设备支持的最大写入字节数。
参数:
writeType: "withResponse" 或 "withoutResponse"返回:可写入的最大字节数(number)
writeValue(characteristic, value, writeType): Promise<void>向特征值写入数据。
参数:
characteristic: 要写入的特征值对象value: 要写入的 Data 数据writeType: 写入类型 "withResponse" 或 "withoutResponse"返回:Promise<void>
subscribe(characteristic, handler): Promise<void>订阅特征值通知或指示。
要求:该特征值必须包含 "notify" 或 "indicate" 属性
参数:
characteristic: 要订阅的特征值
handler(error, value): 通知触发时回调函数
error: 出错时为 Error,否则为 nullvalue: 通知传递的 Data 数据,可能为 null返回:Promise<void>
unsubscribe(characteristic): Promise<void>取消特征值的通知订阅。
参数:
characteristic: 要取消订阅的特征值返回:Promise<void>
discoverServices(serviceUUIDs?: string[]): Promise<void>发现设备提供的服务。
参数:
serviceUUIDs: 可选服务 UUID 列表,用于筛选返回:Promise<void>
discoverIncludedServices(service, includedServiceUUIDs?): Promise<void>发现指定服务中嵌套的服务。
参数:
service: 要发现的服务includedServiceUUIDs: 可选的服务 UUID 筛选返回:Promise<void>
discoverCharacteristics(service, characteristicUUIDs?): Promise<void>发现指定服务中的特征值。
参数:
service: 要发现的服务characteristicUUIDs: 可选的特征值 UUID 筛选返回:Promise<void>
readRSSI(): Promise<number>读取当前设备的信号强度(RSSI,单位 dBm)。
Promise<number>discoverServices() 和 discoverCharacteristics() 获取服务和特征值。unsubscribe() 释放资源。canSendWriteWithoutResponse 为 false 时不应进行无响应写入。